<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://unpkg.com/vue"></script>
    <script>
        window.onload=function(){
            Vue.component('my-component', {
                template: '<div>A custom component!</div>'
            })
            new Vue({
                el:"#example"
            })
            var data = { counter: 0 }
            Vue.component('simple-counter', {
                template: '<button v-on:click="counter += 1">{{ counter }}</button>',
                // 技术上 data 的确是一个函数了，因此 Vue 不会警告，
                // 但是我们返回给每个组件的实例却引用了同一个 data 对象
                data: function () {
                    return {
                        counter: 0
                    }
                }
            })
            new Vue({
                el: '#example-2'
            })
            Vue.component('child', {
                // 声明 props
                props: ['message'],
                // 就像 data 一样，prop 可以用在模板内
                // 同样也可以在 vm 实例中像“this.message”这样使用
                template: '<span>{{ message }}</span>'
            })
            new Vue({
                el:'#example-3',
                data:{
                    parentMsg:''
                }
            })
            Vue.component('todo-item',{
                props:['todo'],
                template:'<div>{{todo.text}}</div>'
            })
            new Vue({
                el:'#example-4',
                data:{
                    todo: {
                        text: 'Learn Vue',
                        isComplete: false
                    }
                }
            })
        }
    </script>
</head>
<body>
<div id="example">
    <my-component>hello</my-component>
</div>
<div id="example-2">
    <simple-counter></simple-counter>
    <simple-counter></simple-counter>
    <simple-counter></simple-counter>
</div>
<div id="example-3">
    <input v-model="parentMsg"><br>
    <child :message="parentMsg"></child>
</div>
<div id="example-4">
    <todo-item :todo="todo"></todo-item>
</div>
</body>
</html>